home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 October / Macformat17.cdr / Shareware City / Developers / Think C dcmd 1.0 ƒ / Sample dcmd / dcmd.c < prev    next >
Text File  |  1994-06-18  |  1KB  |  74 lines

  1. /*****************************************************
  2.  
  3.     bin.c                    P. Stadelmann, June 1994
  4.     
  5.     Displays a long word in binary.
  6.  
  7.  *****************************************************/
  8.  
  9.  
  10. #include <SetUpA4.h>
  11. #include <Think_dcmd.h>
  12. #include <Think_put.h>
  13.  
  14. void DoHelp( void )
  15. {
  16.     PutClear();
  17.     PutPStr( "\pbin num");
  18.     PutLine();
  19.     PutPStr( "\p   Displays the value in num as a binary long.");
  20.     PutLine();
  21. }
  22.  
  23. void DoJob()
  24. {
  25.         long        value;
  26.         Boolean        ok;
  27.         Str255        myStr;
  28.         short        pos;
  29.     
  30.     if ( dcmdPeekAtNextChar() == '\r' )
  31.     {
  32.         PutClear();
  33.         PutPStr( "\pValue not found" );
  34.     }
  35.     else
  36.     {
  37.         pos = dcmdGetPosition();
  38.         dcmdGetNextExpression( &value, &ok );
  39.  
  40.         if (ok)
  41.         {
  42.             PutClear();
  43.             dcmdSetPosition( pos );
  44.             dcmdGetNextParameter( myStr );
  45.             PutPStr( myStr );
  46.             PutPStr( "\p = ");
  47.             PutBinary(value, 32);
  48.         }
  49.         else
  50.             PutPStr( "\pSyntax error");
  51.     }
  52.  
  53.     PutLine();
  54.  
  55. }
  56.  
  57. pascal void CommandEntry( dcmdBlock* paramPtr )
  58. {
  59.     RememberA0();
  60.     SetUpA4();    
  61.     
  62.     switch ( paramPtr->request )
  63.     {
  64.         case dcmdInit : break;
  65.         
  66.         case dcmdHelp : DoHelp();
  67.                         break;
  68.                         
  69.         case dcmdDoIt : DoJob();
  70.                         break;
  71.     }
  72.  
  73.     RestoreA4();
  74. }